package com.guit.server.requestfactory; import com.google.inject.Injector; import com.google.inject.Provides; import com.google.inject.Singleton; import com.google.inject.servlet.ServletModule; import javax.validation.ConstraintValidator; import javax.validation.ConstraintValidatorFactory; import javax.validation.Validation; import javax.validation.Validator; import javax.validation.ValidatorFactory; public final class RequestFactoryModule extends ServletModule { private final String path; public RequestFactoryModule(String path) { this.path = path; } @Override protected void configureServlets() { serve(path).with(GuitRequestFactoryServlet.class); } @Provides @Singleton public ValidatorFactory getValidatorFactory(final Injector injector) { return Validation.byDefaultProvider().configure().constraintValidatorFactory( new ConstraintValidatorFactory() { @Override public <T extends ConstraintValidator<?, ?>> T getInstance(Class<T> key) { return injector.getInstance(key); } }).buildValidatorFactory(); } @Provides @Singleton public Validator getValidator(ValidatorFactory validatorFactory) { return validatorFactory.getValidator(); } }